package com.example.springboot.高级特性;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
public class 配置文件的指定和分组 {

    /**
     * application-profile功能
     * ● 默认配置文件  application.yml；任何时候都会加载
     * ● 指定环境配置文件  application-{env}.yml
     * ● 激活指定环境
     *   ○ 配置文件激活
     *   ○ 命令行激活：
     *   java -jar xxx.jar --spring.profiles.active=test  --person.name=haha
     *   即使打包了  也可以命令行  指定使用哪个配置文件
     *     ■ 修改配置文件的任意值，命令行优先
     * ● 默认配置与环境配置同时生效
     * ● 同名配置项，profile配置优先
     *
     * @Profile(value = {"test","default"})
     *  //在application-test.yml 配置生效时  才生效
     *  //default  默认生效
     *
     * 详见 bean Car
     *
     * #就是 - 后面的单词标识   默认没标识的  都加载  冲突了  按照有标识的
     * #spring.profiles.active=test #环境切换
     *
     * #将以下的配置文件进行分组  名字叫 myprod
     * # 可以有spring.profiles.active  进行多指定
     * spring.profiles.group.myprod[0]=test #标识的配置文件
     * spring.profiles.group.myprod[1]=test
     *
     */
    @Value("${persons.name:李四}")
    private String name;

    @Value("${Path}")//获取环境变量指定的值
    private String Path;
    @Value("${DriverData}")
    private String DriverData;

    @GetMapping("/test")
    public Map getName(){
        Map<String,Object> m = new HashMap<>();
        m.put("persons.name",name);
        m.put("Path",Path);
        m.put("DriverData",DriverData);
        return m;
    }
}
